// 设置axios响应拦截器和请求拦截器
import axios from 'axios';
import { Message } from 'element-ui';

// 该项目所有请求均为 get请求
export default function request(url, params) {
    // 请求超过30秒则判定为超时
    const instance = axios.create({
        baseURL: '/api',
        timeout: 30000,
        withCredentials: true,
    });

    // axios拦截器
    // 请求拦截
    instance.interceptors.request.use(
        (config) => {
            // console.log('请求拦截器');
            return config;
        },
        (err) => {
            console.log(err);
        },
    );

    // 响应拦截
    instance.interceptors.response.use(
        (config) => {
            const code = config.data.code;
            if (code !== 200 )
                Message.error(config.data.message || '未知错误');
            return config;
        },
        (err) => {
            Message.error(err.response.data.message || '未知错误');
        },
    );

    if (params) {
        const query = { params };
        return instance.get(url, query);
    } else {
        return instance.get(url);
    }
}